<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //定义一个30项的数组，数组的每一项要求都是6，每间隔5个数字，求出这五个数的平均值
        // var a = new Array()
        // console.log(a)
        // for (var i = 0; i < 30; i++) {
        //     a[i] = 6
        //     if ((i + 1) % 5 == 0 && i != 0) {
        //         var b = 0
        //         for (var j = i; j > i - 5; j--) {
        //             b += a[j]
        //         }
        //         console.log(b / 5, j + 1,)
        //     }
        // }
        // console.log(a)

        // 2. 通过循环制造一个5 x 5的二维数组，这个数组中的数据是hello，试编程
        //     - [[],[],[],[],[]]
        var bigArr = [];
        for (var i = 0; i < 5; i++) {
            //5次循环,i为0开始,最后i=5时不执行，所以循环体中i最大为4
            var sArr = [];
            for (var j = 0; j < 5; j++) {
                sArr.push("hello")
            }
            bigArr.push(sArr);
        }
        console.log(bigArr);


        console.log("===========");


        // 3. 编写函数 map(arr)，要求把数组中的每一位数字都增加30%
        var arr = [3, 4, 5, 6, 7];
        console.log(arr);
        map(arr);
        console.log(arr);


        console.log("===========");



        // 4. 编写函数 has(arr, 60)，要求判断数组中是否存在60这个元素，返回布尔类型
        var arr = [3, 4, 5, 6, 7];
        console.log(has(arr, 5));
        console.log(has(arr, "5"));
        console.log(has(arr, 50));


        console.log("===========");


        // 5. 编写函数 norepeat(arr)，要求将数组的重复元素去掉，并返回新的数组
        var arr = [4, 6, 5, 3, 7, 6, 5, 8, 7, 9, 2, 3, 2, 2, 2];
        console.log(arr);
        console.log(norepeat(arr));


        console.log("===========");

        // 6. 有一个从小到大排好序的数组。现输入一个数，要求按原来的规律将它插入数组中
        var arr = [2, 3, 6, 9, 35];
        console.log(arr);
        insert(arr, 8)
        console.log(arr);




        // 第三题的功能
        function map(myarr) {
            // 遍历
            for (var i = 0; i < myarr.length; i++) {
                // 改变
                myarr[i] = myarr[i] * 1.3;
            }
            // 返回
            return (myarr);
        }

        // 第四题的功能
        function has(myarr, data) {
            // 遍历
            for (var i = 0; i < myarr.length; i++) {
                // 比较
                if (myarr[i] === data) {
                    // 相同了，返回true
                    return true;
                }
            }
            // 必须所有数据都比较完，才能确实是否不存在相同
            // 所以在循环结束后，如果代码还在执行，说明没有找到相同的
            return false;
        }

        // 第五题的功能
        function norepeat(myarr) {
            // 创建新数组
            var nArr = [];
            // 遍历老数组
            for (var i = 0; i < myarr.length; i++) {
                // 判断新数组中是否存在老数组的数据
                if (!has(nArr, myarr[i])) {
                    // 不存在，将这个数据存入新数组
                    nArr.push(myarr[i])
                }
            }
            // 最后返回新数组
            return nArr;
        }


        // 第六题的功能
        function insert(myarr, data) {
            // 先找到数据要插入的位置
            for (var i = 0; i < myarr.length; i++) {
                if (data < arr[i]) {
                    break;
                }
            }//i处于大于data的位置（索引) 5 leng=10-1=9index
            // 从数组最后一位向后移动，腾出要插入的数据的位置
            //                             9 >= 5  9-- 
            for (var j = myarr.length - 1; j >= i; j--) {
                myarr[j + 1] = myarr[j];
            }//         ar[10] =  ar[9]
                    //  ar[9] =  ar[8]
            // 将新数据插入指定位置
            myarr[i] = data;
            return myarr;
        }

        /* function 傅明亮(sex){
            return '傅明亮是个可爱的'+sex+'生'
        }
        傅明亮('女') */
    </script>
</body>

</html>